//package cn.itbox.example.application.test.four.MethodIntrospectorTest;
//
///**
// * @BelongProject springboot-study
// * @BelongPackage cn.itbox.example.application.test.four.MethodIntrospectorTest
// * @Description TODO
// * @ClassName MethodExecutor
// * @Author huyangbing
// * @Date 2024/5/6 16:53
// * @Version 1.0.0
// */
//public class MethodExecutor {
//
//
//    public void  executeAnnotatedMethods(Object  obj){
//
//        Class<?> clazz = obj.getClass();
//
//        // 使用MethodIntrospector筛选出带有自定义注解的方法
//        Map<Method, MyCustomAnnotation> annotatedMethods = MethodIntrospector.selectMethods(
//                clazz,
//                (MethodMetadata md) -> {
//                    Method method = ((StandardMethodMetadata) md).getIntrospectedMethod();
//                    return AnnotationUtils.findAnnotation(method, MyCustomAnnotation.class) != null;
//                });
//
//        // 执行筛选出的方法
//        for (Map.Entry<Method, MyCustomAnnotation> entry : annotatedMethods.entrySet()) {
//            try {
//                entry.getKey().invoke(obj); // 执行方法，这里假设方法没有参数
//            } catch (Exception e) {
//                // 处理异常
//                e.printStackTrace();
//            }
//        }
//    }
//
//}
